#include "gameselect.h"
#include"gamehall.h"
#include"gameroom.h"
#include<QIcon>
#include<QPushButton>
#include<QSound>
#include<QPainter>
#include<QPixmap>
#include<QFont>
#include<QFile>
#include<QTextStream> // 文本对象
#include<QTextEdit>
// 游戏关卡选择界面
GameSelect::GameSelect(QWidget *parent) : QWidget(parent)
{
    // 2.1 设置窗口的属性
    this->setFixedSize(1000,800);
    this->setWindowIcon(QIcon(":/res/ico.png"));
    this->setWindowTitle("游戏关卡选择");

    // 2.2 设置返回游戏大厅界面的按钮,图标
    QPushButton* backButton = new QPushButton(this);
    backButton->resize(50,50);
    backButton->move(830,700);
    backButton->setIcon(QIcon(":res/back.png"));// 设置按钮控件图标
    backButton->setIconSize(QSize(40,40));// 设置图标大小

    // 按下按钮，则就返回到游戏大厅界面
    connect(backButton,&QPushButton::clicked,[=](){
        this->close();// 关闭当前窗口
        GameHall *gameHall = new GameHall;
        gameHall->show();// 打开游戏大厅界面

        // 设置播放点击的音效
        QSound::play(":/res/clicked.wav");
    });


    // 2.3 设置关卡选择的3个模式按钮和历史战绩按钮
    // 设置字体样式和大小
    QFont font("华文行楷",24);

    // 2.3.1 简单模式
    QPushButton* simpleButton = new QPushButton(this);
    simpleButton->setText("简单模式");
    simpleButton->setFont(font);
    simpleButton->move(420,150);

    // 2.3.2 正常模式
    QPushButton* normalButton = new QPushButton(this);
    normalButton->setText("正常模式");
    normalButton->setFont(font);
    normalButton->move(420,300);

    // 2.3.3 困难模式
    QPushButton* hardButton = new QPushButton(this);
    hardButton->setText("困难模式");
    hardButton->setFont(font);
    hardButton->move(420,450);

    // 2.3.4 历史战绩
    QPushButton* historyButton = new QPushButton(this);
    historyButton->setText("历史战绩");
    historyButton->setFont(font);
    historyButton->move(420,600);


    // 2.4 点击相应的3个模式按钮跳转相应模式的界面
    // 跳转到游戏房间界面
    // 2.4.1 简单模式
    GameRoom *gameroom = new GameRoom();
    connect(simpleButton,&QPushButton::clicked,[=](){
        this->close();
        gameroom->show();
        gameroom->setGeometry(this->geometry());

        // 加音效
        QSound::play(":/res/clicked.wav");

        // 设置蛇的移动速度
        gameroom->setTimeOut(300);
    });

    // 2.4.2 正常模式
    connect(normalButton,&QPushButton::clicked,[=](){
        this->close();
        gameroom->show();
        gameroom->setGeometry(this->geometry());

        // 加音效
        QSound::play(":/res/clicked.wav");

        // 设置蛇的移动速度
        gameroom->setTimeOut(220);
    });

    // 2.4.3 困难模式
    connect(hardButton,&QPushButton::clicked,[=](){
        this->close();
        gameroom->show();
        gameroom->setGeometry(this->geometry());

        // 加音效
        QSound::play(":/res/clicked.wav");

        // 设置蛇的移动速度
        gameroom->setTimeOut(100);
    });


    // 3. 设置弹出历史战绩的窗口
    // 通过读取文件的方式读取历史战绩
    connect(historyButton,&QPushButton::clicked,[=](){
        // 弹出一个 widget 窗口
        QWidget *widget = new QWidget;
        widget->setWindowTitle("历史战绩");
        widget->setFixedSize(800,500);
        widget->setWindowIcon(QIcon(":/res/ico.png"));

        // 在弹出的窗口上创建一个输入框
        QTextEdit *edit = new QTextEdit(widget);
        edit->setFont(font);
        edit->setFixedSize(800,500);

        widget->show();

        // 文件操作
        QFile file("C:\\Users\\lenovo\\Desktop\\code\\qt\\1.txt");
        file.open(QIODevice::ReadOnly);

        QTextStream in(&file);// 文件文本对象
        int data = in.readAll().toInt();

        edit->append("得分为:");
        edit->append(QString().number(data));

    });

}

// 设置游戏关卡选择的背景
void GameSelect::paintEvent(QPaintEvent *event)
{
    (void) event;// 消除警告

    QPainter painter(this);
    QPixmap pix(":/res/game_select.png");
    painter.drawPixmap(0,0,this->width(),this->height(),pix);
}



